﻿namespace Pibby.Core.Persistence
{
	using System.Collections.Generic;
	using dogd;
	using Pibby.Core.PortableMedia;
	using System;
	
	public interface IPodcastRepository 
	{
		void CreateNewDatabase();

		ApplicationVersion GetVersion();

		void Update(ApplicationVersion v);

        void UpdateDevelopment();

		void Import(EpisodeCollection importedCollection);

		Episode LoadEpisode(Key dbKey);

		[Obsolete("Dont use guid version")]
		Episode LoadEpisode(string guid);

		EpisodeCollection LoadEpisodes(EpisodeLifecycle status);

		EpisodeCollection LoadEpisodes(Key podcastKey);

		//[Obsolete("Dont use guid version")]
		EpisodeCollection LoadEpisodes(IEnumerable<int> dbKeys);

		EpisodeCollection SearchEpisodes(string searchTerm);

		EpisodeCollection SearchEpisodes(Key podcastKey, string searchTerm);

		void Save(Episode episode);

		//void Remove(Episode episode);

		Podcast LoadPodcast(Key dbKey);

		[Obsolete("Dont use guid version")]
		Podcast LoadPodcast(string guid);

		PodcastCollection LoadPodcasts();

		PodcastCollection SearchPodcasts(string searchTerm);

		void Save(Podcast p);

		void Save(PodcastCollection existingCollection);

		void Remove(Podcast p);

        // load device(s) settings
        // save device settings
        // forget device
        MediaPlayerSettings LoadMediaSettings();

        void Save(MediaPlayerSettings settings);
	}
}
